home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 8
/
FM Towns Free Software Collection 8.iso
/
t_os
/
pao
/
pvs_pvd
/
src
/
pvd.h
< prev
next >
Wrap
Text File
|
1994-06-01
|
5KB
|
164 lines
/* << HighC V1.7 >> [FM-TOWNS] **********************************************
*
* .PVS 表示プログラム
* ----------------------------------------------------------------------
* Programmed by Y.Hirata ( NIFTY-ID: NAB03321 パオパオ )
*
* NOTE: TAB=4
****************************************************************************/
#ifndef _PVD_DEFINED
#define _PVD_DEFINED
#include <stdio.h>
extern void _harderr_retry( void ) ;
extern void _harderr_clear( void ) ;
#define TRUE 1 /* 真値 */
#define FALSE 0 /* 偽値 */
#define MOS_NONE 0x00 /* ボタン開放 */
#define MOS_LEFT 0x01 /* 左ボタン押下 */
#define MOS_RIGHT 0x02 /* 右ボタン押下 */
#define MOS_BOTH 0x03 /* 左右ボタン押下 */
#define PAD_SELECT 0x80
#define PAD_START 0x40
#define PAD_B 0x20
#define PAD_A 0x10
#define PAD_RIGHT 0x08
#define PAD_LEFT 0x04
#define PAD_DOWN 0x02
#define PAD_UP 0x01
#define PAD_MOVE (PAD_RIGHT|PAD_LEFT|PAD_DOWN|PAD_UP)
typedef unsigned char _BYTE ;
typedef unsigned short int _WORD ;
typedef unsigned long _DWORD ;
typedef struct { /* パレット設定用 */
_DWORD no ; /* パレット番号(0~) */
_BYTE b ; /* 青の階調 */
_BYTE r ; /* 赤の階調 */
_BYTE g ; /* 緑の階調 */
_BYTE zero ; /* 0 */
} _SET_PALETTE ;
typedef struct { /* 16色パレット設定用 */
_DWORD npal ;
_SET_PALETTE pal[16] ;
} _PAL_16 ;
typedef struct { /* 256色パレット設定用 */
_DWORD npal ;
_SET_PALETTE pal[256] ;
} _PAL_256 ;
enum Values_for_SelectNumber { /* 選択識別番号 */
SEL_TIT, P0_1, P0_2, P0_3, /* 0 - 3 */
P0_4, P0_5, P0_6, P0_7, /* 4 - 7 */
P0_8, P0_9, P0_10, P0_11, /* 8 - 11 */
P0_12, P0_13, P0_14, P0_15, /* 12- 15 */
P0_16, P0_17, P0_18, P1_1, /* 16- 19 */
P1_2, P1_3, P1_4, P1_5, /* 20- 23 */
P1_6, P1_7, P1_8, P1_9, /* 24- 27 */
P1_10, P1_11, D0_0, D1_1, /* 28- 31 */
D0_3, D1_3, SEL_EXEC, SEL_END, /* 32- 35 */
P0_X1, P0_X2, P0_X4, P0_Y1, /* 36- 39 */
P0_Y2, P0_Y4, P1_X1, P1_X2, /* 40- 43 */
P1_X4, P1_Y1, P1_Y2, P1_Y4, /* 44- 47 */
SEL_DOS, SEL_TIF, SEL_MAX /* 48- */
} ;
typedef struct { /* カレント情報構造体 */
char *fname ; /* .pvsファイル名 */
FILE *fp ; /* ファイルポインタ */
char *buf ; /* VRAMデータ格納領域 */
int p0 ; /* page0 モード */
int p1 ; /* page1 モード */
int disp ; /* display */
int zx0, zy0 ; /* 表示倍率 */
int zx1, zy1 ; /* 表示倍率 */
int sx0, sy0 ; /* page0表示画面先頭 */
int sx1, sy1 ; /* page1表示画面先頭 */
int vx0, vy0 ; /* page0仮想画面先頭 */
int vx1, vy1 ; /* page1仮想画面先頭 */
int xsize, ysize ; /* 保存サイズ */
int pixel ; /* 保存データピクセル数 */
int page ; /* 保存ページ */
} _SELECT_PARA ;
typedef struct {
int pixel ; /* ピクセル数 */
int sx, sy ; /* 表示サイズ */
int vx, vy ; /* 仮想画面サイズ */
int zx, zy ; /* 初期倍率 */
} _SCREEN_PARA ;
#define VRAM_OFFSET 864 /* .pvs内オフセット */
#define VRAM_SIZE (512*1024) /* VRAMサイズ */
#define VRAM_HALF (256*1024) /* VRAM 2画面目オフセット */
#define TMP_SIZE 1024 /* 作業領域サイズ(固定) */
extern char Mwork[] ; /* MOS作業領域 */
extern char _mos_cur[] ; /* マウスカーソル(アイコン) */
extern char _tmp[] ; /* 作業領域 */
extern FILE *_fp ; /* .pvsファイルポインタ */
extern char *_buf ; /* VRAMデータ格納領域 */
extern _PAL_16 _pal160, _pal161 ; /* 16色パレット設定用 */
extern _PAL_256 _pal256 ; /* 256色パレット設定用 */
extern _SELECT_PARA _para ; /* 選択状態の情報 */
extern _SCREEN_PARA _screen[] ; /* 画面モードの情報 */
#define _pixel0 (_screen[_para.p0-1].pixel)
#define _pixel1 (_screen[_para.p1-1].pixel)
#define _sx0 (_screen[_para.p0-1].sx)
#define _sy0 (_screen[_para.p0-1].sy)
#define _sx1 (_screen[_para.p1-1].sx)
#define _sy1 (_screen[_para.p1-1].sy)
#define _vx0 (_screen[_para.p0-1].vx)
#define _vy0 (_screen[_para.p0-1].vy)
#define _vx1 (_screen[_para.p1-1].vx)
#define _vy1 (_screen[_para.p1-1].vy)
void crtc_out( int reg ) ;
void mosBreak( void ) ;
int mosButton( void ) ;
void ginit( void ) ;
void minit( void ) ;
void to_vram( void ) ;
void reverse( int old,int new ) ;
int select_msdos( void ) ;
int select_page0( int sel ) ;
int page1_check( int p1 ) ;
int select_page1( int sel ) ;
int select_disp( int sel ) ;
int select_zoom( int sel ) ;
void select_on( int old,int new ) ;
int select( void ) ;
void setdos( void ) ;
void setdisp( void ) ;
void menu( void ) ;
void move_disp( int status ) ;
void start_disp( int status ) ;
void reset_disp( void ) ;
void mos_action( void ) ;
void disp( void ) ;
int getpal( void ) ;
void errWait( void ) ;
void usage( void ) ;
void openError( char *fname ) ;
int main( int ac,char *av[] ) ;
#endif
/* HISTORY
-----------------------------------------------------------------------------
* 1994.01.03 : CREATE
* 1994.01.10 : パッド操作で画面スクロール,表示位置変更をできるようにした.
* 1994.01.13 : TIFF保存できるようにした.
---------------------------------------------------------------------------*/